package persistent.impl;

import java.util.List;

import basic.HibBaseDAO;
import model.TBackAdminUser;
import model.VBackAdminUser;
import persistent.dao.BackAdminUserDAO;
import util.toolkit.Constant;
/**
 * 后台用户信息业务类接口的实现
 * @author djf
 * @since 2018/12/10
 */
public class BackAdminUserImpl implements BackAdminUserDAO {

	private HibBaseDAO dao=null;
	
	public BackAdminUserImpl() {
		dao=new HibBaseDAO();
	}
	
	/**
	 * 后台管理员用户登录
	 * @param userid 用户名
	 * @param pwd 密码
	 * @return 成功返回VBackAdminUser对象，失败返回null
	 */
	@Override
	public VBackAdminUser loginBack(String userid, String pwd) {
		String hql="from VBackAdminUser where userid=? and pwd=? and userstatus=?";
		Object para[]={userid,pwd,Constant.ADMINUSERTRUE};
		List<VBackAdminUser> list=dao.select(hql, para);
		if(list!=null && list.size()>0){
			return list.get(0);
		}else{
			return null;
		}
	}

	/**
	 * 添加一个后台用户
	 * @param adminuser 后台用户对象
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean addAdminUser(TBackAdminUser adminuser) {
		int row=dao.insert(adminuser);
		if(row>0){
			return true;
		}else{
			return false;
		}
	}

	/**
	 * 修改一个后台用户信息
	 * @param adminuser
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean updateAdminUser(TBackAdminUser adminuser) {
		TBackAdminUser adminuser2=(TBackAdminUser)dao.findById(TBackAdminUser.class, 
				adminuser.getUserid());
		adminuser2.setUserid(adminuser.getUserid());
		adminuser2.setMobile(adminuser.getMobile());
		adminuser2.setPwd(adminuser.getPwd());
		adminuser2.setRoleId(adminuser.getRoleId());
		adminuser2.setUserstatus(adminuser.getUserstatus());
		adminuser2.setRealname(adminuser.getRealname());
		adminuser2.setCreatetime(adminuser.getCreatetime());
		adminuser2.setLoginstatus(adminuser.getLoginstatus());
		adminuser2.setLastlogindate(adminuser.getLastlogindate());
		return dao.update(adminuser2);
	}

	/**
	 * 删除一个后台用户信息
	 * @param adminuserid 后台用户id
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean deleteAdminUser(int adminuserid) {
		return dao.delete(TBackAdminUser.class, adminuserid);
	}

	/**
	 * 根据用户id得到一个后台用户 
	 * @param adminuserid 后台用户id 
	 * @return 成功返回TBackAdminUser对象，失败返回null
	 */
	@Override
	public TBackAdminUser getTBackAdminUser(String adminuserid) {
		return (TBackAdminUser)dao.findById(TBackAdminUser.class, adminuserid);
	}
	
	/**
	 * 根据用户id得到一个后台用户 
	 * @param adminuserid 后台用户id 
	 * @return 成功返回VBackAdminUser对象，失败返回null
	 */
	@Override
	public VBackAdminUser getVBackAdminUser(String adminuserid) {
		return (VBackAdminUser)dao.findById(VBackAdminUser.class, adminuserid);
	}

	/**
	 * 根据查询条件得到一个后台用户信息列表
	 * @param strwhere 查询条件
	 * @return 成功返回TBackAdminUser列表，失败返回null
	 */
	@Override
	public List<VBackAdminUser> getAdminUserByWhere(String strwhere) {
		String hql="from VBackAdminUser "+strwhere;
		return dao.select(hql);
	}

	/**
	 * 根据查询条件得到一个后台用户信息列表(带分页)
	 * @param strwhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize 每页数
	 * @return 成功返回TBackAdminUser列表，失败返回null
	 */
	@Override
	public List<VBackAdminUser> getAdminUserByWhere(String strwhere,
			int currentPage, int pageSize) {
		String hql="from VBackAdminUser "+strwhere;
		return dao.selectByPage(hql, currentPage, pageSize);
	}

}
